package com.ybwh.springboot1.common;

import java.util.List;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.github.pagehelper.PageInfo;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
 * <p>
 * layui 分页表格返回数据模型
 * </p>
 *
 * @author ybwh
 * @since 2019年5月17日 下午6:48:51
 */
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class TablePageData<T> {

	/**
	 * 成功
	 */
	public static final int SUCCEED_CODE = 0;

	/**
	 * 错误码
	 */
	private int code;

	/**
	 * 错误描述
	 */
	private String msg;

	/**
	 * 记录总数
	 */
	private Integer count;

	/**
	 * 列表数据
	 */
	private List<T> data;

	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
	}

	/**
	 * 对象转换
	 * 
	 * @param pageInfo
	 * @return
	 */
	public static <T> TablePageData<T> fromPageInfo(PageInfo<T> pageInfo) {

		TablePageData<T> tpd = new TablePageData<T>();
		tpd.setCode(SUCCEED_CODE);
		tpd.setCount((int) pageInfo.getTotal());
		tpd.setData(pageInfo.getList());
		return tpd;
	}
}
